package com.ruoyi.pg.mapper;

import java.util.List;
import com.ruoyi.pg.domain.Attachment;
import org.apache.ibatis.annotations.Param;

/**
 * 附件管理Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-07
 */
public interface AttachmentMapper 
{
    /**
     * 查询附件管理
     * 
     * @param attachId 附件管理主键
     * @return 附件管理
     */
    public Attachment selectAttachmentByAttachId(Long attachId);

    /**
     * 查询附件管理列表
     * 
     * @param attachment 附件管理
     * @return 附件管理集合
     */
    public List<Attachment> selectAttachmentList(Attachment attachment);

    /**
     * 新增附件管理
     * 
     * @param attachment 附件管理
     * @return 结果
     */
    public int insertAttachment(Attachment attachment);

    /**
     * 修改附件管理
     * 
     * @param attachment 附件管理
     * @return 结果
     */
    public int updateAttachment(Attachment attachment);

    /**
     * 删除附件管理
     * 
     * @param attachId 附件管理主键
     * @return 结果
     */
    public int deleteAttachmentByAttachId(Long attachId);

    /**
     * 批量删除附件管理
     * 
     * @param attachIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAttachmentByAttachIds(Long[] attachIds);

    /**
     * 根据附件ID列表查询附件信息
     * @param ids
     * @return
     */
    List<Attachment> selectAttachmentListByIds(List<Long> ids);

    List<Attachment> selectAttachmentByIndicatorIdAndFileName(@Param("indicatorId") Long indicatorId, @Param("fileName") String fileName);

    Attachment selectAttachmentByTeacherId(Long teacherId);

    void deleteAttachmentByTeacherIds(Long[] teacherIds);
}
